/*******************************************************************************
 * Copyright (c) 2010, 2030 www.mahao.cn
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 *******************************************************************************/
package cn.itlaobing.eshopmanagement.untils;

import java.io.IOException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.common.Zone;
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;

/**
 * ClassName: FileUpload <br/>
 * Function: TODO 功能描述 <br/>
 * date: 2017年5月27日 上午10:58:11 <br/>
 * 
 * @author Mmmmm
 * @version
 * @since JDK 1.8
 */
public class FileUpload {
	Log log = LogFactory.getLog(this.getClass());
	
	// 设置好账号的ACCESS_KEY和SECRET_KEY
	String ACCESS_KEY = "MboNV0VZMN_gNBzAJ5axLJhcWg_fcACZk7KtKK5V";
	String SECRET_KEY = "VEKXKzXg9UT1nyl8_8J765cGylWLRLWR1YTkGveK";

	// 要上传的空间
	String bucketname = "test"; // 这个得自己创建
	// 上传到七牛后保存的文件名
	String key = "";
	// 上传文件的路径 格式：D:\\java\\1.png
	String FilePath = "";
	//构造一个带指定Zone对象的配置类
	Configuration cfg = new Configuration(Zone.zone2());
	// 密钥配置
	Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
	// 创建上传对象
	UploadManager uploadManager = new UploadManager(cfg);

	// 简单上传，使用默认策略，只需要设置上传的空间名就可以了
	public String getUpToken() {
		return auth.uploadToken(bucketname);
	}

	// 普通上传
	public void upload(String key,String FilePath) throws IOException {
		try {
			// 调用put方法上传
			Response res = uploadManager.put(FilePath, key, getUpToken());
			//解析上传成功的结果
		    DefaultPutRet putRet = new Gson().fromJson(res.bodyString(), DefaultPutRet.class);
			// 打印返回的信息
			log.info(putRet);
		} catch (QiniuException e) {
			com.qiniu.http.Response r = e.response;
			// 请求失败时打印的异常的信息
			log.error(r.toString());
			try {
				// 响应的文本信息
				log.error(r.bodyString());
			} catch (QiniuException e1) {
				log.error(e1);
			}
		}
	}
}
